package cn.springsoter.core.sms.model.dto;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Data;

import java.util.Date;
import java.util.Map;

/**
 * 大汉三通回调通知报告单
 * @author dws
 */
@Data
@JsonIgnoreProperties(ignoreUnknown = true)
public class DaHanReportDTO {
    /**
     * 短信编号
     */
    @JsonProperty("msgid")
    private String msgId;
    /**
     * 手机号码
     */
    private String phone;
    /**
     * 短信发送结果
     * 0——成功；1——接口处理失败；2——运营商网关失败
     */
    private String status;
    /**
     * 状态报告描述
     */
    private String desc;
    /**
     * 当status为1时,表示平台返回错误码，参考: <a href="http://help.dahantc.com/docs/oss/1apkg9vtiqqni.html">状态报告错误码</a> 。
     * 当status为0或2时，表示运营商网关返回的原始值
     */
    @JsonProperty("wgcode")
    private String wgCode;
    /**
     * 客户提交时间
     */
    @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd HH:mm:ss", timezone="GMT+8")
    private Date submitTime;
    /**
     * 大汉三通短信发送时间
     */
    @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd HH:mm:ss", timezone="GMT+8")
    private Date sendTime;
    /**
     * 状态报告接收时间
     */
    @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd HH:mm:ss", timezone="GMT+8")
    private Date time;
    /**
     * 长短信拆分条数
     * 接口处理失败{@code status=1}时未拆分
     */
    private Integer smsCount;
    /**
     * 长短信拆分第几条标示
     */
    private Integer smsIndex;
    /**
     * 自定义参数params
     */
    private Map<String, String> params;
}
